<?php

@include_once("../config.php");
include_once(DAO."/Conexao.php");
include_once(ENTIDADE."/Produto.php");

/**
 * Classe ProdutoDAO
 *
 * @author Falci
 * @package dao
 */
class ProdutoDAO {

    public function  __construct() {
        new Conexao();
    }

    public function inserir($produto){
        $sql = "INSERT INTO produto VALUES(0,".$produto->getFamilia().",".$produto->getDerivacao().",'".$produto->getNome()."',1);";
        return mysql_query($sql);
    }

    public function alterar($produto){
        $sql = "UPDATE produto SET familia=".$produto->getFamilia().", derivacao=".$produto->getDerivacao().",nome='".$produto->getNome()."' WHERE id=".$produto->getId().";";
        return mysql_query($sql);
    }

    public function excluir($produto){
        $sql = "UPDATE produto SET status=0 WHERE id=".$produto->getId().";";
        return mysql_query($sql);
    }

    public function listar(){
        $array = Array();
        $query = mysql_query("SELECT * FROM produto WHERE status=1 ORDER BY nome");
        while ($row = mysql_fetch_object($query)) {
            $produto = new Produto;
            $produto->setId($row->id);
            $produto->setFamilia($row->familia);
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $array []= $produto;
        }

        return $array;
    }

    public function buscaIgual($produto) {
        if($produto->getId() == null) $produto->setId(0);

        $sql = "SELECT id FROM produto WHERE id<>".$produto->getId()." AND ((familia=".$produto->getFamilia()." AND derivacao=".$produto->getDerivacao().") OR nome='".$produto->getNome()."') AND status=1";
        $query = mysql_query($sql);
        if(mysql_num_rows($query) == 0)
            return false;
        else
            return true;
    }

    public function buscarPorFamilia($familia){
        $array = Array();
        $query = mysql_query("SELECT * FROM produto WHERE status=1 AND familia=".$familia." ORDER BY nome");
        while ($row = mysql_fetch_object($query)) {
            $produto = new Produto;
            $produto->setId($row->id);
            $produto->setFamilia($row->familia);
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $array []= $produto;
        }

        return $array;
    }

    public function buscaPorId($id){
        $produto = new Produto;
        $query = mysql_query("SELECT * FROM produto WHERE id=$id ORDER BY nome");
        while ($row = mysql_fetch_object($query)) {
            $produto->setId($row->id);
            $produto->setFamilia($row->familia);
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $produto->setStatus($row->status);
        }

        return $produto;
    }

    public function totalRegistros(){
        $query = mysql_query("SELECT COUNT(p.id) FROM familia f, produto p WHERE f.id=p.familia AND f.status=1 AND p.status=1;");
        return mysql_result($query, 0);
    }

    public function listarPag($pagina=1){
        global $_CFG;
        $primeiro = $pagina * $_CFG['ppp'] - $_CFG['ppp'];
        $sql = "SELECT p.id,p.familia,p.derivacao,f.nome fam,p.nome FROM familia f, produto p WHERE f.status=1 AND p.status=1 AND p.familia=f.id ORDER BY f.nome,p.nome LIMIT $primeiro,".$_CFG['ppp'].";";
        $query = mysql_query($sql) or die(mysql_error());
        $saida = Array();

        while ($row = mysql_fetch_array($query)) {
            $saida []= $row;
        }

        return $saida;
    }

    public function pesquisar($q){
        global $_CFG;
        $array = Array();
        $query = mysql_query("SELECT p.* FROM produto p,familia f WHERE f.status=1 AND p.status=1 AND p.familia=f.id AND CONCAT(p.nome,' ',f.nome) like '%$q%' ORDER BY f.nome,p.nome;");
        while ($row = mysql_fetch_object($query)) {
            $produto = new Produto;
            $produto->setId($row->id);
            $produto->setFamilia($row->familia);
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $array []= $produto;
        }

        return $array;
    }

    public function getCombo($familia,$default=0,$more=""){
        $sql = mysql_query("SELECT p.id,p.nome
                              FROM produto p, familia f
                             WHERE p.status=1 AND f.status=1 AND p.familia=f.id AND p.familia=$familia
                          ORDER BY nome;");

        $out = "<select name=\"produto\" $more>\r\n";
        while($r = mysql_fetch_assoc($sql)){
            if($r['id'] == $default){
                $out .= "    <option value=\"".$r['id']."\" selected=\"selected\">".$r['nome']."</option>\r\n";
            } else {
                $out .= "    <option value=\"".$r['id']."\">".$r['nome']."</option>\r\n";
            }
        }
        $out .= "</select>\r\n";
        return $out;
    }
}
?>